// pages/my/index.js
const app = getApp();
const db = wx.cloud.database();
Page({

    /**
     * 页面的初始数据
     */
    data: {
        statusBarHeight: 0,
        isLoggedIn: false,
        userInfo: {},
        points: 0,
        totalPoints: 0,
        bankCard: false,
        bankInfo: {}
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        const sysInfo = wx.getSystemInfoSync()
        this.setData({
            statusBarHeight: sysInfo.statusBarHeight,
        })
        // 检查登录状态
        this.checkLoginStatus();
        // 监听提现申请状态
        db.collection("points_withdrawal").watch({
            onChange: res => {
                console.log(res);
                for (const change of res.docChanges) {
                    if (change.dataType === 'update' && change.doc.status != 1) {
                        wx.cloud.callFunction({
                            name: 'processWithdraw',
                            data: {
                                recordId:change.doc._id,
                                status:change.doc.status
                            },
                            success: res => {
                                console.log('云函数调用成功：', res);
                                this.getUserPoints()
                            },
                            fail: err => {
                                console.error('云函数调用失败：', err);
                            }
                        });
                    }
                }
            },
            onError: err => {
                console.error('监听错误：', err);
            }
        });
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {
        // 检查登录状态
        this.checkLoginStatus();
        this.getUserPoints()
        this.getUserBank()
    },
    //修改头像昵称
    modifyUserInfo(){
        if (!this.data.isLoggedIn) {
            this.goToLogin();
            return;
        }
        wx.navigateTo({
            url: '/pages/modifyUser/modifyUser'
        });
    },
    // 判断使用绑定银行卡
    getUserBank() {
        if (!this.data.isLoggedIn) return;
        wx.cloud.callFunction({
            name: 'getUserBankCards',
            data: {
                userId: this.data.userInfo._id
            },
            success: (res) => {
                console.log(res);
                if (res.result.success) {
                    let arr = res.result.cards.filter(item => {
                        return item.isDefault == true
                    })
                    let bankInfo = {}
                    if (arr.length > 0) {
                        bankInfo = arr[0]
                    }
                    this.setData({
                        bankInfo: bankInfo,
                        bankCard: res.result.cards.length > 0
                    });
                } else {
                    console.error('获取银行卡信息失败:', res.result.message);
                    wx.showToast({
                        title: '获取银行卡信息失败',
                        icon: 'none'
                    });
                }
            },
            fail: (err) => {
                console.error('获取银行卡信息失败:', err);
                wx.showToast({
                    title: '获取银行卡信息失败',
                    icon: 'none'
                });
            }
        });
    },
    // 获取用户积分
    getUserPoints() {
        if (!this.data.isLoggedIn) return;
        wx.cloud.callFunction({
            name: 'getUserPoints',
            data: {
                userId: this.data.userInfo._id
            },
            success: (res) => {
                console.log(res);
                if (res.result.success) {
                    this.setData({
                        points: res.result.points || 0,
                        totalPoints: res.result.totalPoints || 0
                    });
                } else {
                    console.error('获取积分失败:', res.result.message);
                    wx.showToast({
                        title: '获取积分失败',
                        icon: 'none'
                    });
                }
            },
            fail: (err) => {
                console.error('获取积分失败:', err);
                wx.showToast({
                    title: '获取积分失败',
                    icon: 'none'
                });
            }
        });
    },
    // 检查登录状态
    checkLoginStatus() {
        const userInfo = wx.getStorageSync('userInfo');
        const isLoggedIn = wx.getStorageSync('isLoggedIn');
        // console.log(isLoggedIn);
        // console.log(userInfo);
        this.setData({
            isLoggedIn,
            userInfo
        });
    },
    // 跳转到登录页面
    goToShop() {
        if (!this.data.isLoggedIn) {
            this.goToLogin();
            return;
        }
        wx.navigateTo({
            url: `/pages/shop/shop?sellerId=${this.data.userInfo._id}&from=my`
        });
    },
    // 跳转到登录页面
    goToLogin() {
        wx.navigateTo({
            url: '/pages/login/login'
        });
    },

    // 退出登录
    logout() {
        wx.showModal({
            title: '确认退出',
            content: '您确定要退出当前账号吗？',
            success: (res) => {
                if (res.confirm) {
                    // 清除本地存储的登录信息
                    wx.removeStorageSync('userInfo');
                    wx.removeStorageSync('isLoggedIn');

                    // 更新页面状态
                    this.setData({
                        isLoggedIn: false,
                        userInfo: {}
                    });

                    wx.showToast({
                        title: '退出成功',
                        icon: 'none'
                    });
                }
            }
        });
    },
    // 跳转到我的帖子页面
    goToMyPosts() {
        if (!this.data.isLoggedIn) {
            this.goToLogin();
            return;
        }
        wx.navigateTo({
            url: '/pages/myPosts/myPosts'
        });
    },
    // 跳转到收货地址
    goToAddress() {
        if (!this.data.isLoggedIn) {
            this.goToLogin();
            return;
        }
        wx.navigateTo({
            url: '/pages/addressList/addressList'
        });
    },
    // 跳转到我卖出的页面
    goToSoldItems() {
        if (!this.data.isLoggedIn) {
            this.goToLogin();
            return;
        }
        wx.navigateTo({
            url: '/pages/soldItems/soldItems'
        });
    },

    // 跳转到我买到的页面
    goToBoughtItems() {
        if (!this.data.isLoggedIn) {
            this.goToLogin();
            return;
        }
        wx.navigateTo({
            url: '/pages/boughtItems/boughtItems'
        });
    },

    // 跳转到我收藏的页面
    goToFavorites() {
        if (!this.data.isLoggedIn) {
            this.goToLogin();
            return;
        }
        wx.navigateTo({
            url: '/pages/collect/collect'
        });
    },

    // 跳转到我想要的页面
    goToWantItems() {
        if (!this.data.isLoggedIn) {
            this.goToLogin();
            return;
        }
        wx.navigateTo({
            url: '/pages/wantItems/wantItems'
        });
    },

    // 跳转到退款售后页面
    goToRefund() {
        if (!this.data.isLoggedIn) {
            this.goToLogin();
            return;
        }
        wx.navigateTo({
            url: '/pages/refund/refund'
        });
    },

    // 跳转到客户服务页面
    goToService() {
        if (!this.data.isLoggedIn) {
            this.goToLogin();
            return;
        }
        wx.navigateTo({
            url: '/pages/service/service'
        });
    },
    // 跳转到我的银行卡
    goToBank() {
        if (!this.data.isLoggedIn) {
            this.goToLogin();
            return;
        }
        wx.navigateTo({
            url: '/pages/bankCards/bankCards'
        });
    },
    goToBindBank() {
        if (!this.data.isLoggedIn) {
            this.goToLogin();
            return;
        }
        wx.navigateTo({
            url: '/pages/bindBankCard/bindBankCard'
        });
    },
    // 查看积分记录
    viewPointsRecords() {
        if (!this.data.isLoggedIn) {
            wx.showToast({
                title: '请先登录',
                icon: 'none'
            });
            return;
        }

        wx.navigateTo({
            url: '/pages/pointsRecords/pointsRecords'
        });
    },

    // 积分提现
    withdrawPoints() {
      
        if (!this.data.isLoggedIn) {
            wx.showToast({
                title: '请先登录',
                icon: 'none'
            });
            return;
        }

        if (this.data.points < 10) { // 假设至少100积分才能提现
            wx.showToast({
                title: '积分不足10，无法提现',
                icon: 'none'
            });
            return;
        }

        // 检查是否绑定了银行卡
        if (!this.data.bankCard) {
            wx.showModal({
                title: '提示',
                content: '您还未绑定银行卡，是否前往绑定？',
                success: (res) => {
                    if (res.confirm) {
                        wx.navigateTo({
                            url: '/pages/bindBankCard/bindBankCard'
                        });
                    }
                }
            });
        } else {
            // 已绑定银行卡，跳转到提现页面
            wx.navigateTo({
                url: '/pages/withdrawPoints/withdrawPoints'
            });
        }
    },
    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})